package com.allan.springboot_wms.controller;


import com.allan.springboot_wms.req.InvQueryReq;
import com.allan.springboot_wms.req.InvSaveReq;
import com.allan.springboot_wms.resp.CommonResp;
import com.allan.springboot_wms.resp.InvResp;
import com.allan.springboot_wms.resp.PageResp;
import com.allan.springboot_wms.service.InvService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.validation.Valid;


@RestController //ResponseBody + Controller
//@Controller   返回的是页面 上面返回是字符串
@CrossOrigin    //实现跨域访问
@RequestMapping("/inv")
public class InvController {
    @Resource
    private InvService invService;

    @RequestMapping("/list")
    public CommonResp list(@Valid InvQueryReq req){
        CommonResp<PageResp<InvResp>> resp = new CommonResp<>();
        PageResp<InvResp> list = invService.list(req);
        resp.setContent(list);
        return resp;
    }

    @DeleteMapping("/delete/{id}/{name}")
    public CommonResp delete(@PathVariable Integer id, @PathVariable String name){
        CommonResp resp = new CommonResp<>();
        invService.delete(id, name);
        return resp;
    }

    /**
     * 注意：如果前端用json格式提交的话就要写上RB注解
     *      如果是appliaction/x-www-form-urlencoded表单方式的提交就不需要＋任何注解
     *      !!!添加时不要输入id，如果输入id存在，但是name对不上，数据库会找不到主键 直接操作失败，因为两个主键是一起的。
     * @param req
     * @return
     */
    @PostMapping("/save")
    public CommonResp save(@Valid @RequestBody InvSaveReq req){
        CommonResp resp = new CommonResp<>(); //因为只要返回true就行了 基本上没有返回参数
        invService.save(req);
        return resp;
    }

    @PostMapping("/update")
    public CommonResp update(@Valid @RequestBody InvSaveReq req){
        CommonResp resp = new CommonResp<>(); //因为只要返回true就行了 基本上没有返回参数
        invService.update(req);
        return resp;
    }
}

